# 引入 gettext 模块，用于实现多语言支持
import gettext


# 定义主函数
def main():
    # 提示用户选择语言
    print("Please select a language:")
    print("1. English")
    print("2. 中文 (Chinese)")
    print("3. En français (French)")
    choice = input("select a language: ").strip()

    # 根据用户输入选择语言
    if choice == "1":  # 默认语言：英文
        language = "en"
    elif choice == "2":
        language = "zh"  # 中文
    else:
        language = "fr"  # 法语

    # 加载翻译文件
    # domain: 翻译文件的名字，默认是 "messages"
    # localedir: 翻译文件所在目录，比如 "locale"
    # languages: 选择的语言代码，比如 "en" 或 "zh"
    # 加载翻译文件
    translator = gettext.translation(
        domain="messages",  # 翻译文件的名字
        localedir="locale",  # 翻译文件存放的目录
        languages=[language],  # 用户选择的语言
        fallback=True,  # 如果没有找到翻译文件，回退到默认语言
    )
    translator.install()  # 安装翻译工具，让程序支持 _() 方法

    # 使用 _() 方法输出翻译的内容
    print(_("Hello, world!"))  # 翻译 "Hello, world!"
    print(
        _("This is a multilingual application.")
    )  # 翻译 "This is a multilingual application."
    print(_("Goodbye!"))  # 翻译 "Goodbye!"


# 只有当脚本直接运行时，才会执行 main 函数
if __name__ == "__main__":
    main()
